Modul:Rätsel Infobox
local p = {} local pgN = mw.title.getCurrentTitle().text local pageName = mw.title.getCurrentTitle().text:match("^%(+") local spielIDData = mw.loadData('Modul:RätselSpiel') local nummerIDData = mw.loadData('Modul:RaetselNr') local infobox local categories = {} -- Categories to add local pData local Anzahl = { "1" = "135", "2" = "153", "3" = "168", "4" = "170", "5" = "150", "6" = "165", "VS" = "82", "MJ" = "170" } local Spiele = { "1" = "Professor Layton und das geheimnisvolle Dorf", "2" = "Professor Layton und die Schatulle der Pandora", "3" = "Professor Layton und die verlorene Zukunft", "4" = "Professor Layton und der Ruf des Phantoms", "5" = "Professor Layton und die Maske der Wunder", "6" = "Professor Layton und das Vermächtnis von Aslant", "VS" = "Professor Layton vs. Phoenix Wright: Ace Attorney", "MJ" = "Layton’s Mystery Journey: Katrielle und die Verschwörung der Millionäre" } local Spiel_Handlung = { "1" = "Layton 1", "2" = "Layton 2", "3" = "Layton 3", "4" = "Layton 4", "5" = "Layton 5", "6" = "Layton 6", "VS" = "Layton vs. Wright", "MJ" = "Layton’s Mystery Journey" } local function SpielID() return spielIDDatapgN or spielIDData"#default" or "4" end local function NummerID() return nummerIDDatapgN or nummerIDData"#default" or " }" end local function getPuzzle(spiel, nummer) if nummer "???" then -- Hidden Door local hd = {"2" = 154, "3" = 169} nummer = hdspiel end pData = mw.loadData("Modul:RätselDaten/" .. spiel) return pDatatonumber(nummer) end local function isEmpty(arg) return not arg or arg '' end local function addCategory(category) categories#categories+1 = "Kategorie:" .. category .. "" end local function createInfobox(Spiel) infobox = mw.html.create("table"):addClass("infobox") end local function addTitleRow(Name) Name = pageName infobox :tag("tr") :tag("th") :attr("colspan", 2) :addClass("infoboxheader") :wikitext(Name) end local function addImageRow(Bild) infobox :tag("tr") :tag("th") :attr("colspan", 2) :addClass("infoboxbild") :wikitext("link=") end local function addNoImageRow(text) infobox :tag("tr") :tag("th") :attr("colspan", 2) :addClass("infoboxbild") :wikitext(text) end local function addHeaderRow(text) infobox :tag("tr") :tag("th") :attr("colspan", 2) :wikitext(text) end local function addRow(label, content, altText) if isEmpty(content) then if altText then content = altText else return end end local row = infobox:tag("tr") row:tag("td") :addClass("farbe1") :wikitext(label) row:tag("td") :addClass("farbe2") :wikitext(content) return row end function p.main(frame) local a = frame:getParent().args -- Vorlagen Parameter (wie } etc.) local puzzle = getPuzzle(SpielID(), NummerID()) -- Daten aus den RätselDaten Modulen local puzzleNav = mw.html.create('table'):addClass('navbox puzzleNav') local navRow = puzzleNav:tag('tr') local aNum = tonumber(NummerID()) local pPrev, pNext if aNum then pPrev = pDataaNum-1 pNext = pDataaNum+1 if not pPrev or tonumber(pPrev.nummer) ~= aNum-1 then pPrev = nil end if not pNext or tonumber(pNext.nummer) ~= aNum+1 then pNext = nil end end -- Linke Spalte if pPrev then navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') :wikitext("← " .. (pPrev.name or '?') .. "") else navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') end -- Mittlere Spalte navRow :tag('td') :css('text-align', 'center') :wikitext(pageName) -- Rechte Spalte if pNext then navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') :wikitext("" .. (pNext.name or '?') .. " →") else navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') end -- ## INFOBOX ## createInfobox(SpielID()) -- ## TITEL ## addTitleRow(a.Name) -- ## BILD ## if not isEmpty(a.KeinBild) then addNoImageRow("Dieses Rätsel hat kein Titelbild") else local Bild = a.Bild or ("PL" .. SpielID() .. "-" .. NummerID() .. ".png") addImageRow(Bild) end -- ## SPRACHEN ## addHeaderRow("In anderen Sprachen") -- JP if not isEmpty(a.Romaji) then a.Jp = "" .. a.Jp .. "" end addRow("link=", a.Jp) -- EN (US/UK) if not isEmpty(a.En) then addRow("link=", a.En) else -- US & UK addRow("link=", a.Us) addRow("link=", a.Uk) end -- FR addRow("link=", a.Fr, "Unbekannt") if isEmpty(a.Fr) then addCategory("Französischer Titel fehlt") end -- IT addRow("link=", a.It, "Unbekannt") if isEmpty(a.It) then addCategory("Italienischer Titel fehlt") end -- KR if not isEmpty(a"Kr-Umschrift") then a.Kr = "" .. a.Kr .. "" end addRow("link=", a.Kr) -- NL if isEmpty(a.Nl) and SpielID() ~= "1" then addRow("link=", a.Nl, "Unbekannt") addCategory ("Niederländischer Titel fehlt") else addRow("link=", a.Nl) end -- SP addRow("link=", a.Sp, "Unbekannt") if isEmpty(a.Sp) then addCategory("Spanischer Titel fehlt") end -- ## INFORMATIONEN ## addHeaderRow("Informationen") -- Nummer addRow("#", puzzle.nummer .. "/" .. (AnzahlSpielID())) -- Spiel addRow("Spiel", "[.. (Spiele[SpielID() or "") .. "]]") -- Pikarat if puzzle.pikaratJP then addRow("Pikarat", "" .. puzzle.pikarat .. "") addCategory((puzzle.pikarat or 0) .. " Pikarat") else addRow("Pikarat", puzzle.pikarat) addCategory((puzzle.pikarat or 0) .. " Pikarat") end -- Rätsel-Typ if puzzle.typ then if puzzle.typ2 then addRow("Typ", "[.. puzzle['typ' .. '|' .. puzzle'typ' .. "]]/[.. puzzle['typ2' .. '|' .. puzzle'typ2' .. "]]") addCategory("Typ:" .. puzzle.typ) addCategory("Typ:" .. puzzle.typ2) else addRow("Typ", "[.. puzzle['typ' .. '|' .. puzzle'typ' .. "]]") addCategory("Typ:" .. puzzle.typ) end end -- Ort if puzzle.ort then addRow("Ort", "" .. puzzle.ort .. "") addCategory("Ort:" .. puzzle.ort) end -- Kapitel if puzzle.kapitel then addRow("Kapitel", puzzle.kapitel) end -- Gestellt von... if puzzle.person then addRow("Gestellt von", "" .. puzzle.person .. "") addCategory("Gestellte Rätsel von " .. puzzle.person) end -- Gelöst von... if puzzle.loeser then addRow("Gelöst von", "" .. puzzle.loeser .. "") addCategory("Gelöste Rätsel von " .. puzzle.loeser) end -- Wichtig für die Handlung if puzzle.handlung then addRow("Handlung", "Wichtiges Rätsel für das Voranschreiten des Spiels") addCategory("Wichtige Rätsel für das Voranschreiten von " .. (Spiel_HandlungSpielID())) end -- Belohnung if puzzle.belohnung then addRow("Belohnung", puzzle.belohnung):addClass("letztezeile") else if isEmpty(a.Belohnung) then addRow("Belohnung", "Für dieses Rätsel gibt es keine Belohnung"):addClass("letztezeile") else addRow("Belohnung", a.Belohnung):addClass("letztezeile") end end return tostring(puzzleNav) .. tostring(infobox) .. table.concat(categories) end return p --